I. Field of the Invention
The present invention pertains generally to the field of communications and more specifically to a novel and improved system and method for proportionately multiplexing a plurality of data streams into one data stream.
II. Description of the Related Art
The use of code division multiple access (CDMA) modulation techniques is one of several techniques for facilitating communications in which a large number of system users are present. Although other techniques such as time division multiple access (TDMA), frequency division multiple access (FDMA), and AM modulation schemes such as amplitude companded single sideband (ACSSB) are known, CDMA has significant advantages over these other techniques. The use of CDMA techniques in a multiple access communication system is disclosed in U.S. Pat. No. 4,901,307, entitled “SPREAD SPECTRUM MULTIPLE ACCESS COMMUNICATION SYSTEM USING SATELLITE OR TERRESTRIAL REPEATERS,” and U.S. Pat. No. 5,103,459, entitled “SYSTEM AND METHOD FOR GENERATING WAVEFORMS IN A CDMA CELLULAR TELEPHONE SYSTEM,” both of which are assigned to the assignee of the present invention, the disclosures of which are incorporated by reference herein.
Choosing an allocation scheme for allocating frames from multiple data streams onto one data stream is difficult. Many allocation schemes fall short of performance requirements. For example, a shortest-job-first (SJF) scheme would starve longer jobs. An application residing on a subscriber unit/mobile phone may produce a data stream comprising many frames that must be processed in a timely fashion. Yet, in an SJF scheme, the processing of a data stream having many frames may be starved because of other data streams having fewer frames to be processed. Likewise, a last-in-first-out (LIFO) scheme could starve frames from a data stream that was first in a LIFO queue. On the other hand, a first-in-first-out (FIFO) scheme does not accommodate the relative importance of data streams. In FIFO, every data stream must wait its turn. Consequently, an extremely important data stream may have to wait for a number of less important data streams to be processed. An allocation scheme that does not starve any data stream is desired. It is desirable to have a limit as to when a frame from a data stream will be processed.
Some allocation schemes do not take into account the number of frames that are in a data stream. For example, FIFO and LIFO are only concerned with when a frame from a data stream enters a processing queue. They do not take into consideration the size of data streams. An allocation scheme that takes into consideration the size of the data streams while at the same time not starving a data stream is desired.